述語ロック Predicate Locks
存在しないレコードに対してロックをかける
特定のオブジェクトではなくwhere句に相当するデータへのロック
述語ロックがなければ存在しないオブジェクトはロックできない
ファントム phantomを防げる
パフォーマンス的に使われることはない
述語ロック同士の比較にコストがかかる
述語ロックより大雑把にロックをとることで簡略化する=ネクストキーロック next-key lock
粒度ロック granular lockは実際には述語ロック Predicate Locksであった。
述語ロック Predicate Locks、粒度ロック granular lockの関係がよくわからん
? わかってきたのでいつかまとめる
ISBN:4-8222-8102-7 トランザクション処理 概念と技法
実際に問題を処理するときには、粒度ロックと呼ばれる単純化した述語ロックを用いる
単純化した述語ロック = 粒度ロック granular lock
ISBN:978-4-87311-870-3 データ指向アプリケーションデザイン
そのため、2PLを持つほとんどのデータベースが実装しているのは インデックス範囲ロック ( next-keyロック とも呼ばれます)です。これは、述語ロックを単純化した近似的なものです。
単純化した述語ロック = ネクストキーロック next-key lock
粒度ロック granular lock = ネクストキーロック next-key lockか
まぁ違うだろうな
粒度ロックと2PL
粒度ロックを導入した結果、ファントム phantomを抑止する(Serializableにする)ためにネクストキーロック next-key lockが必要になった
粒度ロック granular lockの出現でインテントロック intent lockも必要になる
述語ロックは実装困難